1. Field of the Invention
This invention relates to a technique for running multiple OS (operating systems) in a PDA (Personal Digital Assistant) or other embedded device (such as cellular phone, smart phone, or other mobile devices). More specifically, instead of re-flash the OS images of the mobile device, methods and systems are proposed to run another OS (Guest OS, new OS, other OS) and its applications from within the original OS (Host OS, native OS) in the mobile device, and then return back to the original mobile device, preserving all state and data in the original OS.
2. Prior Art
US Patent Application 20030093658 by Wen, Say-Ling filed on May 15, 2003 is about a Method and system for starting a multiple PDA operating system through a menu. The invention mainly modifies the BIOS booting procedure in a notebook PC installed with multiple OS's. After the notebook PC is turned on, the multiple OS's are detected. These multiple OS's, including a PDA OS and a normal notebook PC basic OS (such as the Windows OS), are displayed on a menu. By ignoring some hardware diagnostic steps during the BIOS booting procedure and only performing hardware diagnoses for those input devices that support menu manipulations, the starting speed of the laptop can be accelerated. The user can thus start any OS by clicking the desired item in the OS menu.
That application assumes multiple OS can be started and run but does not care how to start up different OS, switch between different OS at run time.                US Patent Application 20030154337 by Ohno, Hiroshi disclosed a multiple operating system control method. In this application, An inter-OS control software for switching OS's in operation executed on a single CPU is installed, and plural OS's are made alternately executed. A control program is executed exclusively on one OS, which controls the controlled apparatus. A supervisory control program and a development environment program are executed on another OS, and a memory space is divided so as to make no effect for the operation of the control program. A higher real-time performance and reliability can be established with a single CPU architecture.        
That approach is similar to the VMware virtual machine used in many desktop computers. Unfortunately, VMware or virtual machines are too heavy and cannot be applied to mobile devices directly. Furthermore, this application uses a special inter-OS control software which is not needed in our invention.                U.S. Pat. No. 6,178,503 by Madden issued on Jan. 23, 2001 is about managing multiple operating systems on a single computer. That invention addresses the management of multiple operating systems on a single computer and other boot-time problems. A boot-time graphical user interface is described, including support for menus, tabs, non-ASCII characters, and other graphical user interface components in the pre-boot environment. Approaches to organizing the storage and selection of multiple operating systems are also presented, including the use of multiple directories that are identified in operating system boot sectors.        
That patent is about user interface in boot management thus covers boot loaders such as Linux boot loader (LILO) or Windows boot loaders used in many desktop computers.                U.S. Pat. No. 6,047,373 by Hall, et al. issued on Apr. 4, 2000 disclosed a Method and apparatus for setting the operating parameters of a computer system.        
That patent is related setting operating parameters of a computer system. It does not directly relate to running multiple OS in general.                U.S. Pat. No. 6,067,618 by Weber on May 23, 2000 is regarding multiple operating system and disparate user mass storage resource separation for a computer system. A personal computer system is provided with two or more hard disk drives, each of which may be independently assigned to a different user, a different operating system, or a different set of applications. When the computer system is booted, one of the hard disk drives is selected as the primary drive in order to establish the assigned operational characteristics for the computer as fixed by the unique combination of operating system configuration and applications programs installed on the selected drive.        
That patent uses multiple hard disks in traditional desktop computers. However, in most mobile devices, hard disks are not available.                U.S. Pat. No. 5,923,874 by Koenig on Jul. 13, 1999 describes a Resource measurement facility in a multiple operating system complex for reporting data from a sysplex with a plurality of operating system images. It relates to a sysplex with a plurality of operating system images connected through connections comprising a reporter facility for reporting data from the sysplex. The reporter facility has in-storage buffers and data sets in the operating system images containing the reportable data.        
That patent differs from our invention in that we do not use sysplex and that patent does not cover ways run multiple OS in mobile devices.                U.S. Pat. No. 5,764,984 by Loucks on Jun. 9, 1998 is about System for multiple co-existing operating system personalities on a microkernel. A dominant personality server is provided to control basic system configuration and resources. Subdominant servers are provided to support applications for other operating systems.        
That patent uses microkernel technology, however, although microkernel is a modern technology for desktop or other high-end computer systems, it is not available for most mobile devices.                U.S. Pat. No. 5,469,573 by McGill, III, et al. on Nov. 21, 1995 is about Disk operating system backup and recovery system. It features a data backup procedure and apparatus for backing up and restoring, or otherwise loading a fully configured operating system to the high capacity storage device (e.g., hard disk) of a computer workstation, such as a personal computer. Basically, it utilizes first media and second media to recovering or loading a desired operating system onto a storage device of a data processing system.        
The technique in that patent is commonly used on most desktop computers. However, in most mobile devices, due to resource, space and power constraint, hard disks cannot be directly utilized.                U.S. Pat. No. 5,454,110 by Kannan, et al. on Sep. 26, 1995 talks techniques for supporting operating systems for portable computers that describes a set of methods and techniques that together address the deficiencies of the basic input/output system (BIOS) and the advanced basic input/output system (ABIOS) in the context of a pen-based portable computer while retaining much of its strengths in terms of providing an insulating layer between the hardware and the operating system such that the same operating system code body will execute in a variety of hardware platforms.        
That patent is can be used to design new mobile devices that contains special BIOS to support multiple OS. Special BIOS is not needed in our invention. Also, that patent does not work for installing new OS or applications on top of existing OS, nor does it cover ways to making multiple operating systems to co-exist.
Booting into multiple Operating Systems (OS) have been around in desktop computers for long time. For example, users can install Windows 95, Windows 2000 or Linux on the same computer and then select which OS to use at boot time. This is possible because desktop computers use hard disk as its main storage. Users can also divide one hard disk into multiple partitions and store different OS images into different partitions or even different directories. When computers start to boot, based on user' choice, the boot loader can load the selected OS image from hard disk into main memory and then start to run that OS.
There are many booting technologies for desktop computers that can handle multiple Operating Systems on multiple hard disks or multiple disk partitions. They can also be used for micro-kernel systems or virtual machine such as VMware. Unfortunately, few of them can also be directly applied to embedded devices or mobile devices due to resource, space or power constraints. For example, most mobile devices do not have hard disks and are very difficult to upgrade or re-flash its system. Even some mobile devices have an alternative storage device to hard disk memory cards, however, currently memory cards are only used to store extra data for the original (native) OS and people cannot boot from the memory card into another OS.
Also, in desktop systems, when user boots to another OS the other OS will re-initialize all of system memory on start because the other OS uses different virtual memory model, or some kernel components that requires remapping of the memory. This allows the guest OS to go use any memory in the system. Then after guest OS finished running, it reboots to select another OS to run. However, this approach is only valid for desktop systems and not working for mobile systems. In a mobile system, host OS and many of its applications also store their data in dynamic memory. Allowing guest OS to claim all memories of the system will also erase data and applications of the host OS so it wont restore after rebooting. If this happens to a mobile system, users may have to “hard reset” the device to go back to its original stage.
So far, we can seldom see multiple OS in one embedded or mobile device (such as PDA, cellular phone, smart phone, or other equivalent mobile devices) because most mobile devices do not store their OS in the hard disk. Instead, at factory time, the whole OS image is burned into ROM. When power is turned on, ROM code is executed to start OS directly from ROM OS image in ROM are extremely difficult to change because re-burn or re-flash requires special equipment and procedure.
To remedy for the shortcoming of regular ROM, some mobile devices such as iPAQ PDA, use Flash ROM in place of ROM so that the whole OS images can be re-flashed or upgraded by software only. However, flashing is still very difficult and dangerous that normal users will almost never need or use it. The process must be done with a desktop computer. It's error-prone, and very risky—if there is any error during the flash, it could have damage the whole device permanently.
Furthermore, even if you can re-flash the original OS to new OS, you lost everything in the original OS. In order to switch back to original OS, you have to re-flash again, but all data in the previous OS are gone. There is no easy way for users to use 2 different OS at the same time or switch between different OS simultaneously. In summary, there is no easy way to install and switch multiple OS in the mobile device.